package com.linksfield.topup.service;

import com.linksfield.topup.config.dto.ResultDataDto;
import com.linksfield.topup.entity.interfaces.planmanage.createserviceplan.request.RequestCreateServicePlan;
import com.linksfield.topup.entity.interfaces.planmanage.edit.request.RequestServicePlanEdit;
import com.linksfield.topup.entity.interfaces.planmanage.editpageoperate.request.RequestEditPageOperate;
import com.linksfield.topup.entity.interfaces.planmanage.languge.request.RequestPartnerLanguageType;
import com.linksfield.topup.entity.interfaces.planmanage.operate.request.RequestServicePlanOperate;
import com.linksfield.topup.entity.interfaces.planmanage.packagebasicinfo.request.RequestPackageBasicInfo;
import com.linksfield.topup.entity.interfaces.planmanage.packagelist.request.RequestPackageNameList;
import com.linksfield.topup.entity.interfaces.planmanage.partnernamelist.request.RequestPartnerNameList;
import com.linksfield.topup.entity.interfaces.planmanage.search.request.RequestServicePlanSearch;

/**
 * 套餐管理业务逻辑处理接口
 *
 * @author: lm
 * @date: 2019-11-21 15:40
 */
public interface ServicePlanService {
    /***
     * 除新建套餐选择企业之外的所有：【获取企业名称列表】
     * @param request
     * @param token
     * @return
     */
    ResultDataDto partnerNameList(RequestPartnerNameList request, String token);

    /**
     * 专门用于新建套餐这边的企业列表：这边的列表要求是都有已启用的方案，符合新建套餐的要求
     *
     * @param request
     * @param token
     * @return
     */
    ResultDataDto partnerList(RequestPartnerNameList request, String token);

    /***
     * 新建套餐时：获取套餐名称列表
     * @param request
     * @param token
     * @return
     */
    ResultDataDto packageNameList(RequestPackageNameList request, String token);

    /***
     * 原始套餐基本信息:
     *
     * 新建页面选择好组别之后请求获取 右侧基本信息
     * @param request
     * @param token
     * @return
     */
    ResultDataDto packageBasicInfo(RequestPackageBasicInfo request, String token);

    /***
     * 确认新建：新建可售卖的套餐服务计划
     * @param request
     * @param token
     * @return
     */
    ResultDataDto createServicePlan(RequestCreateServicePlan request, String token);

    /***
     * 套餐管理【搜索】
     * @param request
     * @param token
     * @return
     */
    ResultDataDto search(RequestServicePlanSearch request, String token);

    /****
     * 套餐管理【编辑】
     * @param request
     * @param token
     * @return
     */
    ResultDataDto edit(RequestServicePlanEdit request, String token);

    /***
     * 在编辑页面：所做的操作：确认新建或者上架
     * @param request
     * @param token
     * @return
     */
    ResultDataDto editPageOperate(RequestEditPageOperate request, String token);

    /***
     * 操作：上架，下架，全部上架，全部下架
     * @param request
     * @param token
     * @return
     */
    ResultDataDto operate(RequestServicePlanOperate request, String token);

    /***
     * 获取企业的语言类型
     * @param request
     * @param token
     * @return
     */
    ResultDataDto partnerLanguageType(RequestPartnerLanguageType request, String token);


}
